Implement num_marked_dates, and don't emit mutiple day_selected signals on
authorGMT 2000 Tony Gale <gale@gtk.org>
Sat, 26 Feb 2000 11:39:07 +0000 (11:39 +0000)
committerTony Gale <gale@src.gnome.org>
Sat, 26 Feb 2000 11:39:07 +0000 (11:39 +0000)
Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>

        * gtk/gtkcalendar.c: Implement num_marked_dates,
          and don't emit mutiple day_selected signals on
          month_prev.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcalendar.c

index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index d5c54d946e19284218dbdf07a3173322ff302c46..6f8ad8832070da87ef50100ddfbee8ef8d4c7cf7 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>
+
+        * gtk/gtkcalendar.c: Implement num_marked_dates,
+          and don't emit mutiple day_selected signals on
+          month_prev.
+
 2000-02-25  Jonathan Blandford  <jrb@redhat.com>
 
        * docs/make-todo (lineno): let title and logo be configurable so
index e6f0330d49baccec0999814f6643d9cf8d71dfe4..435b434370fa172b248d5b53b8fcf1969c98caa5 100644 (file)
@@ -457,6 +457,7 @@ gtk_calendar_init (GtkCalendar *calendar)
   
   for (i=0;i<31;i++)
     calendar->marked_date[i] = FALSE;
+  calendar->num_marked_dates = 0;
   calendar->selected_day = 1;
   
   calendar->display_flags = ( GTK_CALENDAR_SHOW_HEADING | 
@@ -665,11 +666,9 @@ gtk_calendar_set_month_prev (GtkCalendar *calendar)
     {
       if (calendar->selected_day < 0)
        calendar->selected_day = calendar->selected_day + 1 + month_length[leap (calendar->year)][calendar->month + 1];
-      else
-       gtk_calendar_select_day (calendar, calendar->selected_day);
+      gtk_calendar_select_day (calendar, calendar->selected_day);
     }
   
-  gtk_calendar_select_day (calendar, calendar->selected_day);
   gtk_calendar_paint (GTK_WIDGET (calendar), NULL);
   gtk_calendar_thaw (calendar);
 }
@@ -2220,7 +2219,9 @@ gtk_calendar_clear_marks (GtkCalendar *calendar)
     {
       calendar->marked_date[day] = FALSE;
     }
-  
+  calendar->num_marked_dates = 0;
   if (GTK_WIDGET_DRAWABLE (calendar))
     {
       gtk_calendar_paint_main (GTK_WIDGET (calendar));
@@ -2234,9 +2235,11 @@ gtk_calendar_mark_day (GtkCalendar *calendar,
   g_return_val_if_fail (calendar != NULL, FALSE);
   g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE);
   
-  if (day >= 1 && day <= 31)
-    calendar->marked_date[day - 1] = TRUE;
-  
+  if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == FALSE)
+    {
+      calendar->marked_date[day - 1] = TRUE;
+      calendar->num_marked_dates++;
+    }
   if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
     {
       gtk_calendar_paint_main (GTK_WIDGET (calendar));
@@ -2252,8 +2255,11 @@ gtk_calendar_unmark_day (GtkCalendar *calendar,
   g_return_val_if_fail (calendar != NULL, FALSE);
   g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE);
   
-  if (day >= 1 && day <= 31)
-    calendar->marked_date[day - 1] = FALSE;
+  if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == TRUE)
+    {
+      calendar->marked_date[day - 1] = FALSE;
+      calendar->num_marked_dates--;
+    }
   
   if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
     {